Python基础教程:函数的可变参数 | 您所在的位置:网站首页 › python 函数星号 › Python基础教程:函数的可变参数 |
在Python函数中,还可以定义可变参数。 如:给定一组数字a,b,c……,请计算a2 + b2 + c2 + ……。 要定义出这个函数,我们必须确定输入的参数。由于参数个数不确定,我们首先想到可以把a,b,c……作为一个list或tuple传进来,这样,函数可以定义如下: def calc(numbers): sum = 0 for n in numbers: sum = sum + n * n return sum但是调用的时候,需要先组装出一个list或tuple: >>> calc([1, 2, 3]) 14 >>> calc((1, 3, 5, 7)) 84如果利用可变参数,调用函数的方式可以简化成这样: >>> calc(1, 2, 3) 14 >>> calc(1, 3, 5, 7) 84所以,我们把函数的参数改为可变参数: ''' Python大型免费公开课,适合初学者入门 加QQ群:579817333 获取学习资料及必备软件。 ''' def calc(*numbers): sum = 0 for n in numbers: sum = sum + n * n return sum定义可变参数和定义list或tuple参数相比,仅仅在参数前面加了一个*号。在函数内部,参数numbers接收到的是一个tuple,因此,函数代码完全不变。但是,调用该函数时,可以传入任意个参数,包括0个参数: >>> calc(1, 2) 5 >>> calc() 0如果已经有一个list或者tuple,要调用一个可变参数怎么办?可以这样做: ''' Python大型免费公开课,适合初学者入门 加QQ群:579817333 获取学习资料及必备软件。 ''' >>> nums = [1, 2, 3] >>> calc(nums[0], nums[1], nums[2]) 14这种写法当然是可行的,问题是太繁琐,所以Python允许你在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去: >>> nums = [1, 2, 3] >>> calc(*nums) 14Python中可以在tuple、list、dict前加*号,作用是将变量解开成若干个独立的参数,传入函数,还有类似的有两个星号,是将字典解开成独立的元素作为形参。 def add(a, b): return a+b data = [4,3] print add(*data) #equals to print add(4, 3) data = {'a' : 4, 'b' : 3} print add(**data) #equals to print add(4, 3) |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |